package org.yuttadhammo.buddydroid.interfaces; import org.yuttadhammo.buddydroid.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; import java.util.TimeZone; import java.util.TreeMap; import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper; import android.annotation.SuppressLint; import android.app.Activity; import android.content.SharedPreferences; import android.graphics.Typeface; import android.preference.PreferenceManager; import android.text.Html; import android.text.Layout.Alignment; import android.text.Spannable; import android.text.SpannableString; import android.text.Spanned; import android.text.SpannedString; import android.text.TextUtils; import android.text.format.DateUtils; import android.text.method.LinkMovementMethod; import android.text.style.AlignmentSpan; import android.text.style.StyleSpan; import android.util.Log; import android.util.SparseIntArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class MessageListAdapter extends ArrayAdapter<Object> { protected String TAG = "MessageListAdapter"; public SparseIntArray expanded = new SparseIntArray(); private Activity activity; public MessageListAdapter(Activity _activity, Object[] rss) { super(_activity, 0, rss); activity = _activity; } @Override public View getView(final int position, View convertView, ViewGroup parent) { LayoutInflater inflater = activity.getLayoutInflater(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); // Inflate the views from XML View rowView = inflater.inflate(R.layout.message_item, null); final HashMap<?,?> entryMap = (HashMap<?, ?>) getItem(position); TextView titleView = (TextView) rowView.findViewById(R.id.sender); TextView subjectView = (TextView) rowView.findViewById(R.id.subject); TextView textView = (TextView) rowView.findViewById(R.id.text); TextView dateView = (TextView) rowView.findViewById(R.id.date); try { String text = sanitizeText((String) entryMap.get("message")); String title = sanitizeText((String)entryMap.get("from")); String subject = sanitizeText((String)entryMap.get("subject")); String dates = (String)entryMap.get("date_sent"); int unread = Integer.parseInt((String) entryMap.get("unread_count")); //Log.d(TAG,title+" "+subject+" "); // add text textView.setText(text); // add sender to title titleView.setText(title); // add subject to subtitle subjectView.setText(subject); // add date //2013-03-11 20:32:01 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.getDefault()); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); Date date = simpleDateFormat.parse(dates); if(prefs.getBoolean("relative_date",true)) { CharSequence dateString = DateUtils.getRelativeTimeSpanString(date.getTime(), new Date().getTime(), DateUtils.SECOND_IN_MILLIS); dateView.setText(dateString); } else { // check if today or not Calendar now = Calendar.getInstance(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); DateFormat df; if(now.get(Calendar.YEAR) == calendar.get(Calendar.YEAR) && now.get(Calendar.MONTH) == calendar.get(Calendar.MONTH) && now.get(Calendar.DAY_OF_MONTH) == calendar.get(Calendar.DAY_OF_MONTH)) df = android.text.format.DateFormat.getTimeFormat(activity); else df = android.text.format.DateFormat.getMediumDateFormat(activity); dateView.setText(df.format(date)); } if(unread == 0) rowView.setBackgroundColor(0xFFEEEEEE); } catch (Exception e) { e.printStackTrace(); } return rowView; } private String sanitizeText(String string) { string = string.replace("\\\"", "\"").replace("\\'", "'"); return string; } }